package com.xmy.cultivate.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 补费，转课，退费信息
 * </p>
 *
 * @author min
 * @since 2022-08-12
 */
@TableName("order_transfer")
@Data
public class OrderTransfer implements Serializable {

    private static final long serialVersionUID = 1L;

    
    private Long id;

    
    private Long orderId;


    private Long outSchoolId;

    /**
     * 转出课程id
     */
    
    private Long outGradeId;

    /**
     * 转入课程id
     */
    
    private Long inGradeId;

    private Long inSchoolId;

    private Integer outHouse;

    /**
     * 转出金额
     */
    private BigDecimal outPrice;

    /**
     * 1全部转出，2部分转出
     */
    private Integer outType;

    /**
     * 手续费：实收金额+已失效课时费用-已用学费-累计退出金额-本次转出金额
     */
    private BigDecimal serviceChargePrice;

    private Integer version;

    /**
     * created_at
     */
    
    @TableField(fill = FieldFill.INSERT)
    private Long createdId;

    /**
     * 0
     */
    private Integer deleted;

    /**
     * created_at
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdAt;

    /**
     * created_at
     */
    @TableField(fill = FieldFill.UPDATE)
    private LocalDateTime updatedAt;

    private LocalDateTime deletedAt;

    /**
     * 订单类型：1报名，2补费，3转课，4退费
     */
    private Integer orderType;

    private String innerRemark;

    private String outerRemark;

    /**
     * 转入科目
     */
    @TableField(exist = false)
    private String inSubjectsId;

    /**
     * 转出科目
     */
    @TableField(exist = false)
    private String outSubjectsId;

    /**
     * 转入学生
     */
    @TableField(exist = false)
    private Long inStudentId;

    /**
     * 转出学生
     */
//    @TableField(exist = false)
//    private Long outStudentId;


}
